import Vue from "vue";
import App from "./App.vue";

import "./style.less";

Vue.config.productionTip = false;

new Vue({
  render: (h) => h(App),
}).$mount("#app");

/* 
1. 根据用户输入, 收集合并配置
2. 实例化 compiler, 赋予文件读写能力, 储存上下文, 创建一堆钩子
3. 挂载 plugins(并监听事件), 执行默认插件(入口文件)
4. 从入口文件开始, 通过 Loader 转码各类型资源, 递归建立依赖关系, 封装模块类型差异
5. 通过钩子触发各个 plugin, 实现各种工程化功能
6. 根据依赖关系及配置, 输出打包内容
 */

/* 
 Loader: 转码时使用, 负责将各类型资源纳入模块体系
 Plugin: 在任意时使用, 多负责处理工程化资源加载以外的自动化操作
 Loader开发 拿到的文件内容, 做转码输出
 Plugin开发 通过 apply 方法在 compiler 上挂上监听, 触发时拿到 compilation 上下文做开始处理
 */
